package com.lesson01_JavaBase.str;

public class StringBufferDemo {
    public static void main(String[] args) {
        // 创建StringBuffer可变字符串
        // 默认创建16个容量空间
        StringBuffer sb1 = new StringBuffer();
        StringBuffer sb2 = sb1.append("AAAA");
        System.out.println(sb1 == sb2); // 比较2个对像内存地址是否相同
        System.out.println(sb1.equals(sb2)); //比较2个对像内存地址是否相同
        System.out.println(sb1.toString()); // 获取StringBuffer对象值
        System.out.println("-------存储--------");
		/*1，存储。
		StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
		StringBuffer insert(index,数据):可以将数据插入到指定index位置。*/
        sb1.append("BBB");
        System.out.println(sb2.toString());
        sb1.insert(4, "CCC"); // 指定插入值得偏移量
        System.out.println(sb2.toString());

		/*2，删除。
		StringBuffer delete(start,end):删除缓冲区中的数据，包含start，不包含end。
		StringBuffer deleteCharAt(index):删除指定位置的字符。*/
        sb1.delete(4, 7);
        System.out.println(sb1);
        String sql = "INSERT INTO T_TB VALUES (字段1,字段2,字段3,";
        StringBuffer sqlsb = new StringBuffer(sql);
        sqlsb.deleteCharAt(sql.length() - 1);
        System.out.println(sqlsb);

		/*4，修改。
		StringBuffer replace(start,end,string);
		void setCharAt(int index, char ch) ;*/
        sqlsb.replace(0, 11, "UPDATE"); // 选定区域更换为新的字符串
        System.out.println(sqlsb);
        sqlsb.setCharAt(1, 'A'); // 替换指定索引某个字符
        System.out.println(sqlsb);

		/*5，反转。(倒序输出)
		StringBuffer reverse();*/
        StringBuffer sb3 = new StringBuffer("FFFKDKDFJFJSJDJ");
        sb3.reverse();
        System.out.println(sb3);
    }
}
